//
//  StackArr.c
//  DataStruct
//
//  Created by vase on 2022/3/11.
//

#include "StackArr.h"

StackArray* initStack(void) {
    StackArray* stack = (StackArray *)malloc(sizeof(StackArray));
    stack->top = -1; //以-1标记栈为空栈
    return stack;
}

/** 向栈中添加一个新元素*/
//int pushStackArray1(StackArray *stack, ElementType item) {
//    if (stack->top+1 >= StackLen) {  //栈溢出
//        return StackError;
//    }
//    //添加元素
//    stack->data[++stack->top] = item;
//    return 1;
//}

/** 将栈顶元素出栈*/
int popStackArray(StackArray * stack) {
    if (stack->top == -1) {  //栈已空
        return StackError;
    }
    //返回栈顶元素，并重置指针
    return stack->data[stack->top--];
}

/** 读取栈顶元素而不删除*/
int topStackArray(StackArray *stack) {
    if (stack->top == -1) {  //栈已空
        return StackError;
    }
    //返回栈顶元素
    return stack->data[stack->top];
}

//销毁栈
void destoryStackArray(StackArray *stack) {
    /// do noting
    
}
